package com.smartleanx.module.hrm.controller.admin.employee.contract;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import javax.validation.constraints.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 员工合同新增/修改 Request VO")
@Data
public class EmployeeContractSaveReqVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long id;

    @Schema(description = "员工id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long employeeId;

    @Schema(description = "合同编号")
    private String contractCode;

    @Schema(description = "合同类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "合同类型不能为空")
    private Integer contractType;

    @Schema(description = "开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "开始日期不能为空")
    private LocalDateTime startTime;

    @Schema(description = "结束日期", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime endTime;

    @Schema(description = "期限（年）", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer term;

    @Schema(description = "签约公司")
    private String signCompany;

    @Schema(description = "合同签订日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "合同签订日期不能为空")
    private LocalDateTime signTime;

    @Schema(description = "备注")
    private String remarks;

    @Schema(description = "是否缴纳社保")
    @NotNull(message = "是否缴纳社保不能为空")
    private Integer isSocialSecurity;

    @Schema(description = "合同文件id列表")
    private List<Long> contractFileIdList;

    @Schema(description = "其他文件id列表")
    private List<Long> otherFileIdList;

}
